% Ejercicio "Arrays en PASCAL"
\subsection*{\fbox{\theejercicio} - Arrays en PASCAL}

Un compilador de PASCAL admite la utilizaci\'on de constantes de tipo  array, permitiendo su inicializaci\'on en la secci\'on correspondiene indicando agrupadamente cada uno de los elementos que lo componen, as\'{\i}, por ejemplo, es v\'alida la definici\'on:

\begin{verbatim}
a:array[1..2,4..5,1..3] of integer =
      (  ((1,2,3),(4,5,6)) , ((7,8,9),(1,2,3))   );
\end{verbatim}

Construir mediante LEX y YACC un analizador capaz de verificar que es correcta la inicializaci\'on atendiendo al n\'umero, orden, y tipo de las componentes.

\par Los tipos b\'asicos que deben considerarse son {\tt boolean}, {\tt char}, {\tt integer} y {\tt real}; y el \'unico constructor de tipos que debe tenerse en cuenta es el correspondiente a los {\em arrays} . En cada instrucci'on s\'olo es v\'alida la inicializaci\'on
de una variable.

\smallskip

Son ejemplos v\'alidos de esta construcci\'on los siguientes:

\begin{verbatim}
alfa: array[1..2] of array[1..3] of char =
      (  (`a',`b',`c'),(`d',`e',`f') ) ;
beta: array[1..1] of array[1..3,1..2] of real =
      (((1.0,2.0),(1.0,2.0),(1.0,2.0))));
\end{verbatim}

% Solución del ejercicio
\subsubsection*{SOLUCI\'ON}


